﻿using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using STT.Business;
using STT.Entities;
using System.Web;

namespace STT.Admin.UserControls
{
    public partial class ucQuyen : System.Web.UI.UserControl
    {
        public bool chonSuaClick;
        protected void Page_Load(object sender, EventArgs e)
        {
            LoadQuyen();
        }
        void LoadQuyen()
        {
            gvQuyen.AutoGenerateColumns = false;
            gvQuyen.DataSource = BTbQuyen.SelectAll();
            gvQuyen.DataBind();
        }
        bool KiemTraDuLieu()
        {
            return BTbQuyen.KiemTraDuLieu(new ETbQuyen
            {
                TenQuyen = txtTenQuyen.Text
            });
        }
        bool KiemTraMaQuyen(int MaQuyen)
        {
            return BTbQuyen.KiemTraMaQuyen(new ETbQuyen
            {
                MaQuyen = MaQuyen
            });
        }
        void ThongBao(string Loi)
        {
            ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('" + Loi + "')</script>", false);
        }
        protected void btSearch_Click(object sender, ImageClickEventArgs e)
        {
            gvQuyen.DataSource = BTbQuyen.SearchQuyen(new ETbQuyen
            {
                TenQuyen = txtTimKiem.Text
            });

            gvQuyen.DataBind();
        }

        protected void gvQuyen_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
        {
            gvQuyen.EditIndex = -1;
            gvQuyen.DataBind();
        }

        protected void gvQuyen_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            try
            {
                int MaQuyen = int.Parse(gvQuyen.DataKeys[e.RowIndex].Value.ToString());
                BTbQuyen.Delete(MaQuyen);
                LoadQuyen();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến Quyền này vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }

        protected void gvQuyen_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gvQuyen.PageIndex = e.NewPageIndex;
            gvQuyen.DataBind();
        }

        protected void gvQuyen_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "ChonSua")
            {
                int index = Convert.ToInt32(e.CommandArgument);
                hfMaQuyen.Value = gvQuyen.DataKeys[index].Value.ToString();
                // Thay đổi tiêu đề
                txtTieuDe.InnerText = "Sửa Quyền";
                txtTenQuyen.Text = HttpUtility.HtmlDecode(gvQuyen.Rows[index].Cells[2].Text);
                ddlTrangThai.SelectedValue = HttpUtility.HtmlDecode(gvQuyen.Rows[index].Cells[3].Text);
                chonSuaClick = true;
            }
        }

        protected void btSua_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu())
            {
                BTbQuyen.Update(new ETbQuyen
                {
                    MaQuyen = Int32.Parse(hfMaQuyen.Value),
                    TenQuyen = txtTenQuyen.Text,
                    TrangThai = Int32.Parse(ddlTrangThai.SelectedValue)
                });
                LoadQuyen();
                Session["action"] = 2;
            }
        }

        //protected void btThemMoi_Click(object sender, EventArgs e)
        //{
        //    if (!KiemTraDuLieu())
        //    {
        //        BTbQuyen.Insert(new ETbQuyen
        //        {
        //            TenQuyen = txtTenQuyen.Text,
        //            TrangThai = Int32.Parse(ddlTrangThai.SelectedValue)
        //        });

        //        LoadQuyen();
        //    }
        //    else
        //    {
        //        ThongBao("Quyền này đã tồn tại!");
        //        ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('Quyền này đã tồn tại!')</script>", false);
        //    }
        //}

        //protected void btThemExcel_Click(object sender, EventArgs e)
        //{
        //    if (fileup.HasFile)
        //    {
        //        string FileName = FileUpload1.FileName;
        //        string[] str = FileUpload1.FileName.Split('.');
        //        string ten = str[0];
        //        string duoi = str[1];
        //        string path = string.Concat(Server.MapPath("~/Uploads/Files/" + ten + Methods.GenerateRandomPassword(3) + "." + duoi));
        //        FileUpload1.PostedFile.SaveAs(path);
        //        OleDbConnection OleDbcon = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + path + ";Extended Properties=Excel 12.0;");
        //        OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", OleDbcon);
        //        OleDbDataAdapter objAdapter1 = new OleDbDataAdapter(command);
        //        OleDbcon.Open();
        //        DataTable dt = new DataTable();
        //        objAdapter1.Fill(dt);
        //        if (dt.Rows.Count > 0)
        //        {
        //            for (int i = 0; i < dt.Rows.Count; i++)
        //            {
        //                //try
        //                //{
        //                if (dt.Rows[i][1].ToString() != "" || dt.Rows[i][2].ToString() != "")
        //                {
        //                    if (!KiemTraMaQuyen(Int32.Parse(dt.Rows[i][1].ToString())))
        //                    {
        //                        BTbQuyen.Insert(new ETbQuyen
        //                        {
        //                            MaQuyen = Int32.Parse(dt.Rows[i][1].ToString()),
        //                            TenQuyen = dt.Rows[i][2].ToString(),
        //                            TrangThai = Int32.Parse(dt.Rows[i][3].ToString())
        //                        });
        //                    }
        //                }
        //            }
        //        }
        //        OleDbcon.Close();
        //    }
        //    LoadQuyen();
        //}
        //protected void lbXuatDuLieu_Click(object sender, EventArgs e)
        //{

        //}

        protected void lbXoaTat_Click(object sender, EventArgs e)
        {
            try
            {
                for (int i = 0; i < gvQuyen.Rows.Count; i++)
                {
                    CheckBox cbChon = (CheckBox)gvQuyen.Rows[i].Cells[0].FindControl("cbChon");
                    if (cbChon != null && cbChon.Checked)
                    {
                        BTbQuyen.Delete(int.Parse(gvQuyen.DataKeys[i].Value.ToString()));
                    }
                }

                LoadQuyen();
                Session["action"] = 3;
            }
            catch
            {
                ThongBao("Dữ liệu liên quan đến một số Quyền vẫn tồn tại, vui lòng kiểm tra lại dữ liệu!");
            }
        }

        protected void btThemMoi_Click(object sender, EventArgs e)
        {
            if (!KiemTraDuLieu())
            {
                BTbQuyen.Insert(new ETbQuyen
                {
                    TenQuyen = txtTenQuyen.Text,
                    TrangThai = Int32.Parse(ddlTrangThai.SelectedValue)
                });

                LoadQuyen();
                Session["action"] = 1;
            }
            else
            {
                ThongBao("Quyền này đã tồn tại!");
                //ScriptManager.RegisterClientScriptBlock(this, GetType(), "Thông báo!", "<script>alert('Quyền này đã tồn tại!')</script>", false);
            }
        }
    }
}